home *** CD-ROM | disk | FTP | other *** search
- ║CM:MSD - $╞0┬9
- ║LM21:RM70:PP66:PG60
- ║P#116
- ║FT1:,,╨AGE <>
- ║AI-16
- ╘╙┴╘╬ ┼NSURE ┴╘╬ LINE AND ┴╘╬═╧─ ARE CONSISTENT
-
- $╞0┬9 ╠OAD .┴ WITH ┴╘╬═╧─ [$52] FLAG.
- $╞0┬┬ ╔F .┴ IS ZERO, WE ARE NOT IN ATTENTION MODE SO BRANCH TO ╘╙╘┴50 TO CHECK FOR ABSENCE OF ┴╘╬ SIGNAL.
- $╞0┬─ ╫E ARE IN ATTENTION MODE SO CHECK FOR PRESENCE OF ┴╘╬ SIGNAL ON BIT 3 OF PORT ┴ [$00]. ╔F ABSENT, BRANCH TO ╘┴╘╬20 TO CARRY OUT THE COMMAND.
- $╞0├0 ╘╙╘╥╘╬ ┴╘╬═╧─ AND ┴╘╬ LINE AGREE SO RETURN.
- $╞0├1 ╘╙╘┴50 ╫E ARE NOT IN ATTENTION MODE SO CHECK FOR ABSENCE OF ┴╘╬ SIGNAL ON BIT 3 OF PORT ┴ [$00]. ╔F ABSENT, BRANCH TO ╘╙╘╥╘╬.
- $╞0├4 ┴╘╬ SIGNAL HAS OCCURRED SO ABORT CURRENT WORK AND JUMP TO ┴╘╬╙╥╓ [$┼┼┼6] TO HANDLE IT.
- $╞0├7 ┴╘╬ SIGNAL HAS VANISHED SO JUMP TO ┴╘╬╙20 [$┼╞5┼] TO CARRY OUT THE ATTENTION COMMAND.
-
-
-
- ┴╘╬╙╥╔ ╔┼┼┼ BUS HANDLER
-
- $╞0├┴ ─ISABLE INTERRUPTS AND SET STACK POINTER TO $╞╞.
- $╞0├┼ ├LEAR BIT 3 ON PORT ─ [$03] TO INDICATE WE ARE LISTENING ON THE ╔┼┼┼ BUS.
- $╞0─0 ╩╙╥ ┬╒╙╧╬ [$╞┼11] TO SET PORT ┬ IN ╥┼┴─ MODE.
- $╞0─3 ╙ET ╨ORT ┬ [$01] TO $╞╞. ╘HESE INSTRUCTIONS ARE UNNECESSARY.
- $╞0─7 ╙ET ╨ORT ├ [$02] TO $33 (╬─┴├, ╬╥╞─ = LOW) AS PART OF THE ╔┼┼┼ BYTE TRANSFER SEQUENCE.
- $╞0─┬ ╙ET LINE 1 (SERIAL ┴╘╬ ┴├╦) ON ╨ORT ┴ [$00]. ┴GAIN THESE INSTRUCTIONS ARE UNNECESSARY.
- $╞0── ┴╘╬╔1 ├LEAR LINE 3 (╬─┴├) ON PORT ├ [$02] TO INDICATE DATA BYTE IS NOT ACCEPTED.
- $╞0─╞ ╙ET LINE 2 (╬╥╞─) ON PORT ├ [$02] TO INDICATE WE ARE READY TO RECEIVE DATA.
- $╞0┼1 ┴╘╬╔2 ╔F LINE 2 (╔┼┼┼ ┴╘╬) ON PORT ├ [$02] HAS GONE LOW, BRANCH TO ┴╘╬╔10 TO CARRY OUT THE COMMAND.
- $╞0┼4 ╔F LINE 0 (─┴╓) ON PORT ├ [$02] IS LOW, LOOP BACK TO ┴╘╬╔2 TO WAIT FOR IT TO GO HIGH WHICH INDICATES A BYTE HAS BEEN SENT.
- $╞0┼7 ├LEAR LINE 2 (╬╥╞─) ON PORT ├ [$02] TO INDICATE WE ARE NOT READY FOR DATA.
- $╞0┼9 ╙ET ┼╧╔╞╠╟ [$┬1] TO THE VALUE OF LINE 1 (┼╧╔) ON PORT ├ [$02].
- $╞0┼╞ ╠OAD BYTE FROM PORT ┬ [$01] AND SAVE IT IN ╘═╨╙┴╔ [$6┬].
- $╞0╞5 ╙ET LINE 3 (╬─┴├) ON PORT ├ [$02] TO INDICATE DATA ACCEPTED.
- $╞0╞7 ├LEAR .┘ SO IT CAN BE USED AS A ZERO VALUE.
- $╞0╞9 ╠OAD .┴ FROM ╘═╨╙┴╔ [$6┬] AND ┴╬─ IT WITH $60 TO SEE IF IT IS A TALK OR LISTEN COMMAND.
- $╞0╞─ ╔F .┴ = $40 THEN WE HAVE RECEIVED A TALK COMMAND SO BRANCH TO ┴╘╬╔7.
- $╞101 ╔F .┴ = $20 THEN WE HAVE RECEIVED A LISTEN COMMAND SO BRANCH TO ┴╘╬╔3.
- $╞105 ╔F .┴ = $60 THEN WE HAVE A SECONDARY ADDRESS SO BRANCH TO ┴╘╬╔8.
- $╞109 ╔GNORE ALL OTHER VALUES BY BRANCHING TO ┴╘╬╔9.
- ║FP0
- $╞10┬ ┴╘╬╔3 ╔F ╘═╨╙┴╔ [$6┬] = ╠╙╬┴─╥ [$77] THEN THIS IS A LISTEN COMMAND FOR US SO BRANCH TO ┴╘╬╔5.
- $╞111 ╔F ╘═╨╙┴╔ [$6┬] IS NOT $3╞ (AN UNLISTEN COMMAND) THEN BRANCH TO ┴╘╬╔4.
- $╞115 ├LEAR ╠╙╬┴├╘ [$50] FLAG.
- $╞117 ┴╘╬╔4 ├LEAR ┴├╘╠╬╔ [$4├┴╞] FLAG.
- $╞11┴ ╩UMP TO ┴╘╬╔9 TO CONTINUE.
- $╞11─ ┴╘╬╔5 ╙ET ╠╙╬┴├╘ [$50] TO A NON ZERO VALUE TO INDICATE WE ARE TO LISTEN.
- $╞11╞ ├LEAR ╘╠╦┴├╘ [$51] FLAG.
- $╞121 ┴╘╬╔6 ╙ET ╙┴ [$58], ╧╥╟╙┴ [$59], AND ┴├╘╠╬╔ [$4├┴╞] TO $20.
- $╞12┴ ┬RANCH TO ┴╘╬╔9 TO CONTINUE.
- $╞12├ ┴╘╬╔7 ├LEAR ╘╠╦┴├╘ [$51] FLAG.
- $╞12┼ ╔F ╘═╨╙┴╔ [$6┬] DOES NOT MATCH ╘╠╦┴─╥ [$78] THIS IS NOT A TALK COMMAND FOR US SO BRANCH TO ┴╘╬╔4.
- $╞134 ╙ET ╘╠╦┴├╘ [$51] TO A NON ZERO VALUE TO INDICATE WE ARE TO TALK.
- $╞136 ╙AVE .┘ IN ╠╙╬┴├╘ [$50] FLAG TO CLEAR IT.
- $╞138 ┬RANCH TO ┴╘╬╔6 TO CONTINUE.
- $╞13┴ ┴╘╬╔8 ╔F ┴├╘╠╬╔ [$4├┴╞] IS ZERO, THE SECONDARY ADDRESS HAS NOT BEEN RECEIVED YET SO BRANCH TO ┴╘╬╔9.
- $╞13╞ ╙AVE THE INPUT BYTE AT ╘═╨╙┴╔ [$6┬] AS THE SECONDARY ADDRESS ╧╥╟╙┴ [$59] AND SAVE THIS VALUE ON THE STACK.
- $╞144 ╙ET ╙┴ [$58] TO ╧╥╟╙┴ [$59] ┴╬─ $0╞.
- $╞148 ╥ESTORE THE SECONDARY ADDRESS FROM THE STACK AND ┴╬─ IT WITH $╞0.
- $╞14┬ ╔F THE RESULT IS NOT $┼0 (A CLOSE COMMAND) THEN BRANCH TO ┴╘╬╔9.
- $╞14╞ ┼NABLE INTERRUPTS AND ╩╙╥ ├╠╧╙┼ [$─┴15] TO CLOSE THE FILE ASOCIATED WITH THIS SECONDARY ADDRESS.
- $╞153 ─ISABLE INTERRUPTS.
- $╞154 ├LEAR BIT 3 ON PORT ─ [$03] TO INDICATE WE ARE LISTENING ON THE ╔┼┼┼ BUS.
- $╞156 ╔F BIT 7 OF ╔╧╞╠╟ [$6├] IS SET THEN THE ╔/╧ BUS IS STILL CONFIGURED FORREADING ON PORT ┬ SO BRANCH TO ┴╘╬╔9.
- $╞159 ╩╙╥ ┬╒╙╧╬ [$╞┼11] TO SET PORT ┬ IN ╥┼┴─ MODE.
- $╞15├ ┴╘╬╔9 ╔F LINE 0 (─┴╓) ON PORT ├ [$02] IS LOW LOOP TO ┴╘╬╔9 TO WAIT FOR IT TO GO HIGH.
- $╞15╞ ╩UMP TO ┴╘╬╔1 TO GET ANOTHER BYTE.
- $╞162 ┴╘╬╔10 ╔F ╠╙╬┴├╘ [$50] = $00 WE DO NOT NEED TO LISTEN SO BRANCH TO ┴╘╬╔11.
- $╞166 ├LEAR LINE 2 (╬╥╞─) ON PORT ├ [$02].
- $╞168 ├LEAR LINE 1 (SERIAL ┴╘╬ ┴├╦) ON PORT ┴ [$00].
- $╞16┴ ╩╙╥ ╠╔╙╘╬╔ [$╞17┼] TO LISTEN ON THE ╔┼┼┼ BUS.
- $╞16─ ╩UMP TO ╔─╠┼ [$┼971].
- $╞170 ┴╘╬╔11 ╙ET LINE 3 (╬─┴├) ON PORT ├ [$02].
- $╞172 ├LEAR LINE 1 (SERIAL ┴╘╬ ┴├╦) ON PORT ┴ [$00].
- $╞174 ╔F ╘╠╦┴├╘ [$51] = $00 WE DO NOT NEED TO TALK SO BRANCH TO ┴╘╬╔12.
- $╞178 ╩╙╥ ╘┴╠╦╔ [$╞1╞5] TO TALK ON THE ╔┼┼┼ BUS.
- $╞17┬ ┴╘╬╔12 ╩UMP TO ╔─╠┼ [$┼971].
-